【PHP 面向对象】面向对象(OOP)编程知识点归纳总结(一)

您所在的位置:网站首页 面向对象 PHP 【PHP 面向对象】面向对象(OOP)编程知识点归纳总结(一)

【PHP 面向对象】面向对象(OOP)编程知识点归纳总结(一)

2024-07-01 21:57| 来源: 网络整理| 查看: 265

面向对象OOP编程 一、面向对象的概念 对象的基本组成 对象特点 类的概念 类的实例化 类的定义 二、OOP面向对象编程 1. PHP class:定义类 定义类 访问权限 成员属性 成员方法 2. PHP new:实例化对象 实例化对象 对象的访问 $this当前对象 构造函数 3. PHP 类的自动加载机制 spl_autoload_register() 函数 4. PHP static:类的静态成员 Static(静态)关键字 5. PHP extends:类的继承 数据访问总结 6. PHP instanceof:判断对象是否属于某个类

一、面向对象的概念

面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。

我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数据库的 是一系列的具体功能函数(如果你不使用ODBC接口的话)。这样做虽然效率很高,但是封装却不够。如果有一个统一的数据库接口,那么我们就可以不对程序做 任何修改而适用于多种数据库,从而使程序的移植性和跨平台能力都大大提高。

对象的基本组成 对象的组成元素:是对象的数据模型,用于描述对象的数据,又称为对象的属性,或者对象的成员变量. 对象的行为: 是对象的行为模型,用于描述对象能够做什么事情,又被称为对象的成员方法. 对象特点 每一个对象都是独一无二的 对象是一个特定的事物,他的职能是完成特定功能 对象是可以重复使用 类的概念 物以类聚,把具有相似特性的对象对垒到一个类中,类定义了这些相似对象拥有的相同的属性和方法 类是相似对象的描述,成为类的定义,是该类对象的蓝图或者原型 类的对象称为一个类的实例(Instance) 类的属性和方法统称为类成员 类的实例化 类的实例化:通过类定义创建一个类的对象 类的定义属性值都是空或默认值,而对象的属性都有具体的值 类的定义 类的定义以关键字class开始,后面跟着这个类的名称。类的命名通常每个单词的第一个字母大写,以中括号开始和结束 类的实例化为对象时使用关键字new,new之后紧跟类的名称和一对圆括号 对象中得成员属性和方法可以通过->符号来访问 二、OOP面向对象编程

面向对象编程(Object Oriented Programming,OOP)是一种编程思想,在很多现代编程语言中都有面向对象编程的概念。

面向对象编程的思想就是把具有相似特性的事物抽象成类,通过对类的属性和方法的定义实现代码共用。将实现某一特定功能的代码部分进行封装,这样可被多处调用,而且封装的粒度越细小被重用的概率越大。

而面向对象编程的继承性和多态性也提高了代码的重用率。总之,面向对象编程充分地体现了软件编程中的“高内聚,低耦合”的思想。

PHP 之所以能够成为 Web 开发领域的主流语言,对面向对象开发模式的支持也是重要原因之一。

1. PHP class:定义类 定义类 变量:实现数据的复用 函数:实现代码块的复用 类:具有相同属性(变量)和方法(函数)的对象集合 对象:复合数据类型,可以储存且有权利对储存在其中的变量进行操作的一组函数 oop:单位是对象,对象是类的实例化的结果 instance 实现类的自动加载 前提必须满足psr-4规范:类文件名称和类同名 [修饰类的关键字] class 类名{ 类的成员属性和方法; }

修饰类的关键字是一个可选参数,可以省略。我们通常使用下面这些关键字来修饰类:

abstract:抽象类或方法,被修饰为抽象类之后,类将不能被实例化,但可以被继承。如果类中有至少一个方法被声明为抽象的,那么这个类也必须声明为抽象的。继承一个抽象类的时候,子类必须重新定义父类中的所有抽象方法,而且这些方法的访问控制必须和父类中一样。 final:使用 final 修饰的类不能被继承,而使用 final 修饰的方法不能在子类中重新定义。 注意:一个类可以包含有属于自己的常量、变量(在类中称为“成员属性”或者“属性”)以及函数(在类中称为“成员方法”或者“方法”)。 访问权限

常用访问权限修饰符及其含义如下所示:

public:公共的,在类的内部、子类中或者类的外部都可以使用;(不受限制) protected:受保护的,在类的内部和子类中可以使用,但是不能被对象访问,只能通过封装的方式让对象访问;(可以被继承,但外部不能访问) private:私有的,只能在类的内部使用,在类的外部或子类中都无法使用。(既不能继承也不能外部访问) static:静态成员,无需实例化对象,即可通过类名访问。 成员属性

在类中声明成员属性时,变量前面一定要使用一个关键字来修饰,例如 public、private,static 等,但这些关键字修饰的变量都具有一定的意义。如果不需要有特定意义的修饰,可以使用“var”关键字,一旦成员属性有其他的关键字修饰就需要去掉“var”。

【示例】创建一个 Students 类并在类中声明一些成员属性,代码如下所示:

提示:权限修饰符可以和定义静态变量的关键字 static 混合在一起使用,如上面代码中所示。

成员方法

在类中定义的函数被称为成员方法。函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成员方法是实现类中的一个行为,是类的一部分。

可以在类中声明多个成员方法,成员方法的声明和函数的声明完全一样,只不过在声明成员方法时可以在function关键字的前面加一些访问权限修饰符来控制访问权限,例如 public、private、protected 等。

【示例】在上面示例中创建的 Students 类中创建一些成员方法。

成员方法前面的权限修饰符可以省略,省略后默认权限为 public。在类中成员属性和成员方法的声明都是可选的,可以同时存在,也可以单独存在,具体可以根据实际情况而定。

在 PHP7 中,引入了类型声明,我们可以为成员方法的形参和返回值声明类型,格式如下所示:

[权限修饰符] function 方法名 (类型 参数1, 类型 参数2, ..., 类型 参数n) : 返回值类型 { ... ... }

PHP7 中支持声明的参数类型包括整型、浮点型、字符串型和布尔类型。示例代码如下所示:

2. PHP new:实例化对象 实例化对象

将类实例化成对象非常容易,只需要使用 new 关键字并在后面加上一个和类名同名的方法即可。当然如果在实例化对象时不需要为对象传递参数,在 new 关键字后面直接用类名称即可,不需要再加上括号。

对象的实例化格式如下:

变量名 = new 类名(参数数列表); 或 变量名 = new 类名;

参数说明如下:

变量名:通过类所创建的一个对象的引用名称,可以通过这个名称来访问对象的成员; new:关键字,表明要创建一个新的对象; 类名:表示新对象的类型; 参数列表:指定类的构造方法用于初始化对象的值,如果类中没存定义构造函数,PHP - 会自动创建一个不带参数的默认构造函数。(后面我们会详细介绍)。

【示例】创建一个类并将其实例化。

一个类可以实例化出多个对象,每个对象都是独立的。在上面的代码中通过 Students 类实例化出三个对象 p e r s o n 1 、 person1、 person1、person2 和 $person3,相当于在内存中开辟了三份空间用于存放每个对象。

使用同一个类声明的多个对象之间是没有联系的,只能说明他们都是同一个类型,每个对象内部都有类中声明的成员属性和成员方法。就像独立的三个人,都有自己的姓名,性别和年龄的属性,每个人都有说话、吃饭和走路的方法。

对象的访问

对象中包含成员属性和成员方法,访问对象中的成员和访问数组中的元素类似,只能通过对象的引用来访问对象中的成员。但还要使用一个特殊的运算符号->来完成对象成员的访问,访问对象中成员的语法格式如下所示:

变量名 = new 类名(参数); //实例化一个类 变量名 -> 成员属性 = 值; //为成员属性赋值 变量名 -> 成员属性; //直接获取成员属性的值 变量名 -> 成员方法(); //访问对象中的成员方法

下面通过一个示例来演示一下:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3